package com.education.platform.service;

import com.education.platform.dto.teacher.AdminTeacherQueryDTO;
import com.education.platform.dto.teacher.AuditIdentityDTO;
import com.education.platform.dto.teacher.TeacherQueryDTO;
import com.education.platform.vo.teacher.TeacherDetailVO;
import com.education.platform.vo.teacher.TeacherListVO;

import java.util.List;
import java.util.Map;

/**
 * 教员服务接口
 */
public interface TeacherService {

    /**
     * 获取教员列表（分页）
     */
    Map<String, Object> getTeacherList(TeacherQueryDTO queryDTO);

    /**
     * 获取教员详情
     */
    TeacherDetailVO getTeacherDetail(Long id);

    /**
     * 获取推荐教员
     */
    List<TeacherListVO> getRecommendTeachers(Integer limit);

    // ========== 管理员接口 ==========

    /**
     * 管理员查询教员列表
     */
    Map<String, Object> adminGetTeachers(AdminTeacherQueryDTO queryDTO);

    /**
     * 管理员更新教员状态
     */
    void adminUpdateTeacherStatus(Long id, String status);

    /**
     * 获取待审核教员列表
     */
    List<Map<String, Object>> getPendingAuditList();

    /**
     * 根据状态获取审核列表
     */
    List<Map<String, Object>> getAuditListByStatus(String status);

    /**
     * 审核教员身份
     */
    void auditTeacherIdentity(AuditIdentityDTO auditDTO);
}

